HTTP系列 -- 请求与响应
概述
Server(服务器):服务器作为硬件来说,通常是指那些具有较高计算能力,能够提供给多个用户使用的计算机
Client(客户端):是指与服务器相对应,为客户提供本地服务的程序
浏览器 + 服务器 + HTTP 三者关系
- 浏览器负责发起请求
- 服务器在80端口接收请求
- 服务器负责返回内容(响应)
- 浏览器负责下载响应内容
HTTP 的作用就是指导浏览器和服务器如何进行沟通。
请求
请求头(Request Headers)格式
1 | 1.请求类型 路径 协议/版本 // 请求行 |
请求类型
GET ==> 用于获取数据。
POST ==> 用于提交数据,请求服务器进行处理。
PUT ==> 向指定资源位置上传其最新内容(所有内容都更新)。
PATCH ==> 用于将局部修改应用到资源。
DELETE ==> 请求服务器删除Request-URI所标识的资源。
HEAD ==> 向服务器发出指定资源的请求,但服务器将不传回资源的本文部分。
OPTIONS ==> 使服务器传回该资源所支持的所有HTTP请求方法,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。
路径
必须以 /
开头,如果不设置,默认为 /
,路径包括查询参数,但是不包括锚点
版本:
版本大部分都是 HTTP/1.1
,还有HTTP/2
.
请求头(key: value):
请求头定义一些操作参数。其中1
2
3
4
5Host: www.baidu.com // 域名
User-Agent: // 用的什么软件发起的请求
Content-Type: application/x-www-form-urlcoded //标识了第4部分的格式,POST 请求
Content-Length:
Cookie:
第3部分:
是一个空行(回车)。
第4部分:
上传的数据,可以没有
说明
- https 协议 ==> 所有数据在网络上请求和传输的时候都是加密的
- http 协议 ==> 所有数据在网络上请求和传输的时候都是明文的
响应
响应头(Response Headers)格式
1 | 1.协议/版本 状态码 状态解释 |
状态码:
表示网页服务器超文本传输协议响应状态的3位数字代码。
2xx成功 ==> 代表请求已成功被服务器接收、理解、并接受。
1
2a.200 OK 请求已成功,请求所希望的响应头或数据体将随此响应返回(GET)。
b.204 No Content 服务器成功处理了请求,没有返回任何内容(创建成功 ==> POST)。3xx重定向 ==> 类状态码代表需要客户端采取进一步的操作才能完成请求。
1
2
3a.301 Move Permanently 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。
b.302 Found 要求客户端执行临时重定向。
c.304 Not Modified 表示资源未被修改。在这种情况下,由于客户端仍然具有以前下载的副本,因此不需要重新传输资源。4xx客户端错误 ==> 这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。
1
2a.403 Forbidden 客户端错误,服务器已经理解请求,但是拒绝执行 它。
b.404 Not Found 请求失败,请求所希望得到的资源未被在服务器上发 现,但允许用户的后续请求。5xx服务器错误 ==> 表示服务器无法完成明显有效的请求。
1
2a.500 Internal Server Error 通用错误消息,服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。
b.502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
HTML 与 HTTP
所有 App 都会内置一个浏览器(WebView)用来展示 HTML,而 HTML 都是通过 HTTP 下载的,而如果你要使用 HTTP 一般都会用到 URL。